{
  lib,
  stdenv,
  fetchurl,
  makeDesktopItem,
  copyDesktopItems,
  SDL,
  lua5_1,
  pkg-config,
  SDL_mixer,
  SDL_image,
  SDL_ttf,
}:

stdenv.mkDerivation rec {
  pname = "fish-fillets-ng";
  version = "1.0.1";

  src = fetchurl {
    url = "mirror://sourceforge/fillets/fillets-ng-${version}.tar.gz";
    sha256 = "1nljp75aqqb35qq3x7abhs2kp69vjcj0h1vxcpdyn2yn2nalv6ij";
  };
  data = fetchurl {
    url = "mirror://sourceforge/fillets/fillets-ng-data-${version}.tar.gz";
    sha256 = "169p0yqh2gxvhdilvjc2ld8aap7lv2nhkhkg4i1hlmgc6pxpkjgh";
  };

  nativeBuildInputs = [
    pkg-config
    copyDesktopItems
  ];
  buildInputs = [
    SDL
    lua5_1
    SDL_mixer
    SDL_image
    SDL_ttf
  ];

  # pass in correct sdl-config for cross builds
  env.SDL_CONFIG = lib.getExe' (lib.getDev SDL) "sdl-config";

  makeFlags = [
    "AR=${stdenv.cc.targetPrefix}ar"
  ];

  desktopItems = [
    (makeDesktopItem {
      name = "fish-fillets-ng";
      exec = "fillets";
      icon = "fish-fillets-ng";
      desktopName = "Fish Fillets";
      comment = "Puzzle game about witty fish saving the world sokoban-style";
      categories = [
        "Game"
        "LogicGame"
      ];
    })
  ];

  postInstall = ''
    mkdir -p $out/share/games/fillets-ng
    tar -xf ${data} -C $out/share/games/fillets-ng --strip-components=1
    install -Dm644 ${./icon.xpm} $out/share/pixmaps/fish-fillets-ng.xpm
  '';

  meta = with lib; {
    description = "Puzzle game";
    mainProgram = "fillets";
    license = licenses.gpl2Plus;
    maintainers = with maintainers; [ raskin ];
    platforms = platforms.linux;
    homepage = "https://fillets.sourceforge.net/";
  };
}
